/*
 * 版权所有(C)，上海海鼎信息工程股份有限公司，lizhixing，所有权利保留。
 * <p>
 * 项目名：	boot-demo
 * 文件名：	BusinessException
 * 模块说明：
 * 修改历史：
 * 2022/5/16 - lizhixing - 创建。
 */
package com.lovely602.boot.bootdemo.domain.common.exception;

import lombok.Getter;
import lombok.Setter;

/**
 * @author lizhixing
 */
@Getter
@Setter
public class BusinessException extends RuntimeException {

  private String logMessage;
  private ErrorCodes errorCodes;

  public BusinessException(String logMessage, ErrorCodes errorCodes, Object... arguments) {
    super(errorCodes.formatMsg(arguments));
    this.logMessage = logMessage;
    this.errorCodes = errorCodes;
  }

  public BusinessException(ErrorCodes errorCodes, Object... arguments) {
    super(errorCodes.formatMsg(arguments));
    this.errorCodes = errorCodes;
  }

  public BusinessException(ErrorCodes errorCodes, Throwable e, Object... arguments) {
    super(errorCodes.formatMsg((arguments)), e);
    this.errorCodes = errorCodes;
  }
}
